/**
 * Class Room - a room in an adventure game.
 *
 * This class is part of the "World of Zuul" application. 
 * "World of Zuul" is a very simple, text based adventure game.  
 *
 * A "Room" represents one location in the scenery of the game.  It is 
 * connected to other rooms via exits.  The exits are labelled north, 
 * east, south, west.  For each direction, the room stores a reference
 * to the neighboring room, or null if there is no exit in that direction.
 * 
 * @author  Michael Kölling and David J. Barnes
 * @version 2016.02.29
 */

import java.util.*;

public class Room 
{
    private String description;
    private Map<String,Room> exits = new HashMap<>();
    private Thing thing = null;
    
    /**
     * Create a room described "description". Initially, it has
     * no exits. "description" is something like "a kitchen" or
     * "an open court yard".
     * @param description The room's description.
     */
    public Room(String description) 
    {
        this.description = description;
    }
    
    public Room(String description, Thing thing) 
    {
        this(description);
        this.thing = thing;
    }
    
    public void setExit(String direction,Room room)
    {
        exits.put(direction,room);
    }
    
    /**
     * @return The description of the room.
     */
    public String getDescription()
    {
        return description;
    }
    
    public void printExits()
    {
        System.out.print("可以行进的方向: ");
        exits.keySet().stream().forEach(key->System.out.print(key+" "));
        System.out.println();
    }
    
    public Room goNext(String direction)
    {
        return exits.get(direction);
    }
    
    public Thing getThing(){
        return this.thing;
    }    
    
    public void remove(){
         thing = null;
    }
    
   
}
